onToolCallFinish

open suspend fun onToolCallFinish(call: TelemetryCall, event: OnToolCallFinishEvent)

Exactly one of outputJson/errorMessage is non-null. NOT fired for a CANCELLED tool call — cancellation unwinds the loop, so integrations may see a start without a finish.